#include <iostream>
#include <vector>
#include <string>
#include <set>

std::string compare(std::string a, std::string b)
{
    std::set<char> c;

    char a_count[10] = {0};
    char b_count[10] = {0};

    int dd = 0;
    int ee = 0;
    for (int i = 0; i < a.size(); i++)
    {
        if (a[i] == b[i])
        {
            dd++;
        }
        else
        {
            a_count[a[i] - '0']++;
            b_count[b[i] - '0']++;
        }
    }

    for (int i = 0; i < 10; i++)
    {
        ee += std::min(a_count[i], b_count[i]);
    }

    return std::to_string(dd) + "A" + std::to_string(ee) + "B";
}

int main()
{
    int N;
    std::vector<std::pair<std::string, std::string>> input_pairs;

    std::cin >> N;
    std::cin.ignore();

    for (int i = 0; i < N; i++)
    {
        int num_str;
        std::string gus_str;
        std::cin >> num_str >> gus_str;
        std::cin.ignore();
        input_pairs.push_back({std::to_string(num_str), gus_str});
    }

    // for (int i = 0; i < N; i++)
    // {
    //     std::cout << input_pairs[i].first << " " << input_pairs[i].second << std::endl;
    // }

    std::vector<int> ok_arr;
    for (int i = 1000; i < 9999; i++)
    {
        int is_ok = true;
        for (int j = 0; j < N; j++)
        {
            std::string gus_ret = compare(std::to_string(i), input_pairs[j].first);
            if (gus_ret != input_pairs[j].second)
            {
                is_ok = false;
                break;
            }
        }
        if (is_ok)
        {
            ok_arr.push_back(i);
            if (ok_arr.size() > 1)
                break;
        }
    }

    if (ok_arr.size() != 1)
    {
        std::cout << "NA" << std::endl;
    }
    else
    {
        std::cout << ok_arr[0] << std::endl;
    }

    return 0;
}